package com.ruoyi.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Id;

import javax.persistence.Column;
import java.util.Date;

/**
 * 舆情对象 po_public_opinion
 * 
 * @author ruoyi
 * @date 2021-06-07
 */
@Data
public class PoPublicOpinion extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 舆情编号 */
    @Id
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /** 标题 */
    @Excel(name = "标题")
    private String title;
    /** 内容 */
    @Excel(name = "内容")
    private String content;
    /** 网站名称 */
    @Excel(name = "网站名称")
    private String siteName;
    /** 文章链接 */
    @Excel(name = "文章链接")
    private String url;
    /** 发布日期 */
    @Excel(name = "发布日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishTime;
    /** 采集时间 */
    @Excel(name = "采集时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date gatherTime;
    /** 负面 */
    @Excel(name = "负面")
    private Integer isnegative;
    /** 中性 */
    @Excel(name = "中性")
    private Integer isneutral;
    /** 正面 */
    @Excel(name = "正面")
    private Integer ispositive;
    /** 媒体类型 */
    @Excel(name = " 媒体类型",readConverterExp = "2001=新闻,2002=博客,2003=论坛,2004=微博,2005=微信,2007=电子报,2008=视频,2009=APP,2010=贴吧,2011=问答,2012=短视频,2999=综合")
    private String carrie;

    /** 媒体名称 */
    @Excel(name = "媒体名称")
    @Column(name = "media_name")
    private String mediaName;

    /** 发布日期 */
    @Excel(name = "发布日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "publish_date")
    private Date publishDate;

    private String publishDay;

    private String publishHour;

    /** 媒体类型 */
    @Excel(name = "媒体类型")
    @Column(name = "media_type")
    private String mediaType;

    @Excel(name = "作者")
    private String author;
    /** 摘要 */
    @Excel(name = "摘要")
    private String summary;

    private String area;

    private String relateArea;

    private String industry;

    private String forward;

    private String accountType;

    private String keywords;

    private String commentBloggers;

    private String relationOrganization;

    private String relationProject;

    /** 关联人名 */
    @Excel(name = "关联人名")
    private String relationPersonName;

    /** 关联地点 */
    @Excel(name = "关联地点")
    private String relationLocationName;

    /** 关联机构 */
    @Excel(name = "关联机构")
    private String relationOrganizationName;

    private Long relationSourceFile;

    private String insertBy;

    /** 收录时间 */
    @Excel(name = "收录时间")
    private Date insertAt;

    private Date updateAt;
    /** 转发量 */
    @Excel(name = "转发量")
    private Integer forwardNum;
    /** 点赞量 */
    @Excel(name = "点赞量")
    private Integer likeVolume;
    /** 评论量 */
    @Excel(name = "评论量")
    private Integer comment;
    /** 阅读量 */
    @Excel(name = "阅读量")
    private Integer view;
    /** 再看量 */
    @Excel(name = "再看量")
    private Integer lookingNum;


    /** 信息类型 */
    @Excel(name = "信息类型:0舆情,1军情")
    private Integer informationType;

    @ApiModelProperty(value = "热度指数")
    @TableField(exist = false)
    private Integer indexNumber;

    /** 预警等级 */
    @ApiModelProperty(value = "预警等级")
    @TableField(exist = false)
    private String level;

    /** 标题 */
    @Excel(name = "态度")
    private String attitude;

    /** 语言 */
    @Excel(name = "语言")
    private String language;

    /** 租户编码 */

    private String tenantCode;

    /** 用户编号 */

    private Long userId;

    /** 部门编号 */

    private Long deptId;

    /** 提取文字 */
    @TableField(exist = false)
    private String sourceFileExtractText;

    /** 文件资源路径 */
    @TableField(exist = false)
    private String sourceFileUrl;

    /** 是否来源主流媒体 */
    @TableField(exist = false)
    private Integer mainStream;

    /** 相似文章数 */
    private Long similarityNum;

    @Override
    public String toString() {
        return "PoPublicOpinion{" +
                "id='" + id + '\'' +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                ", siteName='" + siteName + '\'' +
                ", url='" + url + '\'' +
                ", publishTime=" + publishTime +
                ", gatherTime=" + gatherTime +
                ", isnegative=" + isnegative +
                ", isneutral=" + isneutral +
                ", ispositive=" + ispositive +
                ", carrie='" + carrie + '\'' +
                ", comment='" + comment + '\'' +
                ", mediaName='" + mediaName + '\'' +
                ", publishDate=" + publishDate +
                ", publishDay='" + publishDay + '\'' +
                ", publishHour='" + publishHour + '\'' +
                ", mediaType='" + mediaType + '\'' +
                ", author='" + author + '\'' +
                ", summary='" + summary + '\'' +
                ", area='" + area + '\'' +
                ", relateArea='" + relateArea + '\'' +
                ", industry='" + industry + '\'' +
                ", forward='" + forward + '\'' +
                ", accountType='" + accountType + '\'' +
                ", keywords='" + keywords + '\'' +
                ", commentBloggers='" + commentBloggers + '\'' +
                ", relationOrganization='" + relationOrganization + '\'' +
                ", relationProject='" + relationProject + '\'' +
                ", relationPersonName='" + relationPersonName + '\'' +
                ", relationLocationName='" + relationLocationName + '\'' +
                ", relationOrganizationName='" + relationOrganizationName + '\'' +
                ", relationSourceFile=" + relationSourceFile +
                ", insertBy='" + insertBy + '\'' +
                ", insertAt=" + insertAt +
                ", updateAt=" + updateAt +
                ", informationType=" + informationType +
                ", indexNumber=" + indexNumber +
                ", level='" + level + '\'' +
                ", attitude='" + attitude + '\'' +
                ", language='" + language + '\'' +
                ", tenantCode='" + tenantCode + '\'' +
                ", userId=" + userId +
                ", deptId=" + deptId +
                ", sourceFileExtractText='" + sourceFileExtractText + '\'' +
                ", sourceFileUrl='" + sourceFileUrl + '\'' +
                ", mainStream=" + mainStream +
                '}';
    }
}
